package com.aterrizar;

import java.text.ParseException;
import java.util.Calendar;

public class Fecha {
	private Parseador formatoFecha;
	private Calendar fechaCalendar;
	
	public Fecha (String fechaString, Parseador formatoFecha) throws ParseException
	{
		this.setFormatoFecha(formatoFecha);
		this.setFechaCalendar(this.formatearString(fechaString));
	}
	
	public void setFormatoFecha (Parseador formatoFecha)
	{
		this.formatoFecha = formatoFecha;
	}
	
	public Parseador getFormatoFecha()
	{
		return this.formatoFecha;
	}
	
	public void setFechaCalendar (Calendar fechaCalendar)
	{
		this.fechaCalendar = fechaCalendar;
	}
	
	public Calendar getFechaCalendar()
	{
		return this.fechaCalendar;
	}
	
	public long obtenerMilisegundos()
	{
		return this.getFechaCalendar().getTimeInMillis();
	}
	
	public Calendar formatearString (String fechaString) throws ParseException
	{
		return this.getFormatoFecha().formatear(fechaString);
	}
	
	public long diferenciaEnDiasCon(Fecha unaFecha)
	{
		long difEnMilis = Math.abs(this.obtenerMilisegundos() - unaFecha.obtenerMilisegundos());
		return difEnMilis / (24 *60 *60 * 1000);
	}
	
	public boolean esAnteriorA (Fecha unaFecha)
	{
		if (this.obtenerMilisegundos() < unaFecha.obtenerMilisegundos())
		{
			return true;
		}
		else
		{
			return false;
		}
	}
}

